home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 2004 #2 / Amiga Plus CD - 2004 - No. 02.iso / AmiSoft / Disk / moni / FileX-src.lha / FileX-src / filexstructs.h < prev    next >
C/C++ Source or Header  |  2003-09-20  |  6KB  |  229 lines

  1.       /******************************/
  2.       /*         Strukturen         */
  3.       /******************************/
  4.  
  5. struct Prefs
  6. {
  7.     BOOL UseAsl, Overwrite;
  8. };
  9.  
  10. struct DisplayData
  11. {
  12.     struct Node Node;            /* Verkettung innerhalb eines Fensters */
  13.     struct Node FNode;        /* Verkettung innerhalb eines Files */
  14.     struct FileData *FD;        // File description
  15.     struct DisplayInhalt *DI;
  16.     struct Window *Wnd;        // Window
  17.     
  18.     BYTE DisplayForm, DisplaySpaces;        /* DF_HEXASCII, 2 */
  19.     short Flags;
  20.     long Zeilen;
  21.     WORD BPR;            // Bytes per row (?)
  22.     short ScrollRand;
  23.     long CPos;            // Cursor position
  24.     long MPos;
  25.     long SPos;            // Display position (?)
  26.     short DisplayTyp;
  27.  
  28.     UWORD abx, hbx, mbx, bby, sbby, sbx, StatusZeilenBreite;
  29.     struct Gadget *PropGadget;    // Scroller gadget
  30. };
  31.  
  32. #define DD_HEX    (1L << 0)
  33. #define DD_MARK    (1L << 1)
  34. #define DD_HEXEDITPOS (1L << 2)    /* Falls Hexeingabe:Obere/Untere 4-Bit */
  35.  
  36. struct DisplayInhalt
  37. {
  38.     struct Node Node;
  39.     struct List DisplayList;
  40.     struct DisplayData *AktuDD;
  41.     struct Window *Wnd;
  42.     ULONG WindowTop, WindowLeft;
  43.     UWORD fhöhe, fbreite, fbase;
  44.     struct TextFont *TextFont;        /* Textfontzeiger oder 0 für Standardfont */
  45.     struct AppWindow *AppWnd;        /* Ggf. Zeiger auf Appwindow */
  46.     struct Requester InvisibleRequest;
  47. };
  48.  
  49.  
  50.  
  51. #define FD_FILE 0
  52. #define FD_GRAB 1
  53.  
  54. struct FileData
  55. {
  56.     struct Node Node;
  57.     struct List DisplayList;
  58.     UBYTE *Name;            // File name
  59.     short Typ;            // File type (FD_FILE or FD_GRAB)
  60.     ULONG Len, RLen;        // File length
  61.     UBYTE *Mem;            // Buffer's address in memory
  62.  
  63.     long Changes,RedoChanges,FullChanges;
  64.     struct Undostruct *Undos;
  65.     WORD UndoTiefe;
  66.     WORD UndoStart;
  67.     long UndoMemSize;
  68.     long Locations[ 10 ];
  69.     ULONG LocationNumber;
  70. };
  71.  
  72. struct WindowData
  73. {
  74.     struct Window *Wnd;
  75.     struct WindowInfo *WI;
  76.     BOOL SchonMalGeoeffnet;
  77.     struct Gadget *GList;
  78.     struct Gadget **Gadgets;
  79.     WORD Left, Top;
  80.     struct MyNewGadget *NG;    
  81.     WORD GadgetZahl;
  82. };
  83.  
  84. struct ScreenModeData
  85. {
  86.     BOOL smd_Valid;                    /* Gültige Werte in der Strucktur? */
  87.     ULONG smd_DisplayID;                /* Display mode ID               */
  88.     ULONG smd_DisplayWidth;            /* Width of display in pixels       */
  89.     ULONG smd_DisplayHeight;        /* Height of display in pixels      */
  90.     UWORD smd_DisplayDepth;            /* Number of bit-planes of display  */
  91.     UWORD smd_OverscanType;            /* Type of overscan of display      */
  92.     BOOL  smd_AutoScroll;            /* Display should auto-scroll?      */
  93. };
  94.  
  95. struct Speicher
  96. {
  97.     UBYTE *mem;
  98.     ULONG len;
  99. };
  100.  
  101. struct Undostruct
  102. {
  103.     USHORT typ;
  104.     UBYTE wert;
  105.     UBYTE neuwert;
  106.     LONG pos;
  107.  
  108.     struct Speicher u, r;
  109. };
  110.  
  111. struct MyNewGadget
  112. {
  113.     BYTE Typ;
  114.     BYTE Pos;
  115.     UBYTE Key, Disabled;
  116.     char *Title;
  117.     WORD Min, Max;
  118.     LONG CurrentValue;
  119.     UBYTE MinHexs, MinChars;
  120. };
  121.  
  122.       /******************************/
  123.         /*           MACROS           */
  124.         /******************************/
  125.  
  126. #define GetString( g )      ((( struct StringInfo * )g->SpecialInfo )->Buffer  )
  127. #define GetNumber( g )      ((( struct StringInfo * )g->SpecialInfo )->LongInt )
  128.  
  129. #define   Max(a,b)    ((a) > (b) ? (a) : (b))
  130.  
  131.         /******************************/
  132.       /*          DEFINES           */
  133.         /******************************/
  134.  
  135. #define SCROLLERNEU -1000        /* Wert, um Darstellung neu aufzubauen */
  136.                                         /* oder den Cursor neu zu setzten */
  137.  
  138.     /* Werte für MiscSettings */
  139.  
  140. #define MIN_ALTSPRUNGWEITE 0    /* Minimale Altsprungweite */
  141. #define MAX_ALTSPRUNGWEITE 30    /* Maximale Altsprungweite */
  142. #define DEFAULT_ALTSPRUNGWEITE 7    /* Default */
  143.  
  144. #define MAX_UNDO_LEVEL 9999
  145. #define MIN_UNDO_LEVEL 2
  146. #define DEFAULT_UNDO_LEVEL    200
  147.  
  148. #define MIN_UNDO_MEM 10
  149. #define MAX_UNDO_MEM 9999
  150. #define DEFAULT_UNDO_MEM 250
  151.  
  152. #define MIN_SCROLLRAND 0
  153. #define MAX_SCROLLRAND 99
  154.  
  155.     /*************************/
  156.  
  157. #define DEFAULT_ZEILEN 20
  158.  
  159. /*#define CF_HEX        (1L << 0)        /* Cursor aktiv im Hexfeld */*/
  160. /*#define CF_ASCII    (1L << 1)        /* Cursor aktiv in ASCII-Feld */*/
  161. /*#define CF_HEXEDITPOS (1L << 2)    /* Falls Hexeingabe:Obere/Untere 4-Bit */*/
  162. /*#define CF_MARK    (1L << 3)        /* Wir sind im Markierungsmodus ? */*/
  163.  
  164. #define MF_LEFTMOUSEDOWN    (1L << 0)        /* Linke Maustaste gedrückt */
  165. #define MF_ICONIFY            (1L << 5)        /* Sollen wir uns iconifien? */
  166. #define MF_OVERWRITE            (1L << 6)        /* Files direkt überschreiben? */
  167. #define MF_ICONIFIED            (1L << 7)        /* Sind wir iconified? */
  168. #define MF_ENDE                (1L << 8)        /* FileX soll beendet werden */
  169. #define MF_CALC                (1L << 9)        /* Taschenrechner offen? */
  170. #define MF_CLIPCONV            (1L <<10)        /* ClipConv offen? */
  171. #define MF_LISTREQ            (1L <<11)        /* ListReq offen? */
  172. #define MF_MOVESTATUSBALKEN (1L <<11)        /* Statusbalken wird gezogen */
  173. #define MF_LOCKGUI            (1L <<12)        /* GUI gesperrt? */
  174. #define MF_WDWINDOWOPEN        (1L <<13)        /* Ein WindowData-Fenster offen? */
  175. #define MF_MOVECURSOR        (1L <<14)        /* Wird der Cursor gerade verschoben, d.h. Mausgedrückt innerhalb eines Views */
  176.  
  177. #define COPYMASK 1            /* Planemaske beim Kopieren im Scrollfenster */
  178.  
  179.         /* Werte für Screenflags */
  180.  
  181. #define SF_WORKBENCH            1L /* Workbenchscreen */
  182. #define SF_OWN_PUBLIC        2L    /* Eigener Publicscreen */
  183. #define SF_PUBLIC                3L    /* Publicscreen. Name in `publicscreenname' */
  184. #define SF_DEFAULT_PUBLIC    4L    /* defaul Publicscreen */
  185.  
  186. #define UT_ASCII    (1L << 1)            /* Asciizeichen an pos */
  187. #define UT_HEX_H    (1L << 2)            /* Highnibble von Hexzeichen an pos */
  188. #define UT_HEX_L    (1L << 3)            /* Lownibble von Hexzeichen an pos */
  189. #define UT_INSERT    (1L << 4)            /* Insert/Append */
  190. #define UT_PASTE    (1L << 5)            /* Paste */
  191. #define UT_CUT        (1L << 6)            /* Cut */
  192.  
  193. #define SM_CASE        (1L << 0)        /* Case-sensetiv */
  194. #define SM_STRING        (1L << 2)        /* String */
  195. #define SM_REPLACE    (1L << 4)        /* Search and Replace */
  196. #define SM_WILDCARDS    (1L << 5)        /* Suchen mit Mustern */
  197.  
  198. /* Flags für BM-Routinen */
  199. #define BM_CASE        (1L << 0)        /* Case-sensetiv */
  200.             /* ACHTUNG! WICHTIG!! gleiche Definition in main.c */
  201. #define BM_BACKWARD    (1L << 1)        /* Rückwärts */
  202. #define BM_WILDCARDS    (1L << 2)        /* Mit Wildcards */
  203.  
  204. #define FM_NUMBER (1L << 0)
  205. #define FM_STRING (1L << 1)
  206.  
  207. #define WILDCHAR '?'
  208.  
  209. #define GP_LEFTBOTTOM 1
  210. #define GP_RIGHTBOTTOM 2
  211. #define GP_MIDDLEBOTTOM 3
  212. #define GP_NEWCOLUMN 4
  213.  
  214. #define HEX_KIND 20
  215.  
  216. #define DF_HEX 1
  217. #define DF_ASCII 2
  218. #define DF_HEXASCII 3
  219.  
  220. #define TEXTLINEBUFFERLEN 4096
  221.  
  222. #define BOXADDX 8        /* Breite einer Bevelbox ohne Inhalt*/
  223. #define BOXADDY 4        /* Höhe einer Bevelbox ohne Inhalt*/
  224.  
  225. #define DEFAULT_COMMANDSHELLWINDOW "CON:////CommandShell/AUTO/CLOSE/SCREEN FILEX"
  226. #define DEFAULT_COMMANDWINDOW "CON:////ARexx command window/AUTO/CLOSE/WAIT/SCREEN FILEX"
  227.  
  228. #define GetDDFromFD( x ) ((struct DisplayData *)(((UBYTE *)(x))-sizeof(struct Node)))
  229.